package cn.iocoder.yudao.module.reading.controller.admin.page.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import lombok.Data;

import java.util.List;

/**
 * 管理后台 - 绘本页面创建 Request VO
 *
 * @author 芋道源码
 */
@Schema(description = "管理后台 - 绘本页面创建 Request VO")
@Data
public class BookPageCreateReqVO {

    @Schema(description = "绘本ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @NotNull(message = "绘本ID不能为空")
    private Long bookId;

    @Schema(description = "页码", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @NotNull(message = "页码不能为空")
    private Integer pageNumber;

    @Schema(description = "页面图片URL", example = "https://example.com/page1.jpg")
    private String imageUrl;

    @Schema(description = "图片宽度", example = "800")
    private Integer imageWidth;

    @Schema(description = "图片高度", example = "600")
    private Integer imageHeight;

    @Schema(description = "页面文字内容", example = "This is a school.")
    @Size(max = 2000, message = "页面文字内容长度不能超过2000个字符")
    private String textContent;

    @Schema(description = "中文翻译内容", example = "这是一所学校。")
    @Size(max = 2000, message = "中文翻译内容长度不能超过2000个字符")
    private String chineseTranslation;

    @Schema(description = "文本语言类型", example = "english")
    private String textLanguage;

    @Schema(description = "官方音频URL", example = "https://example.com/audio1.mp3")
    private String officialAudioUrl;

    @Schema(description = "音频时长（秒）", example = "30")
    private Integer audioDuration;

    @Schema(description = "阅读难度", example = "easy")
    private String readingDifficulty;

    @Schema(description = "关键词列表", example = "[\"school\", \"children\"]")
    private List<String> keyWords;

}
